package net.sahv.bdyz.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import net.sahv.bdyz.mapper.ShowSynchronizationMapper;
import net.sahv.bdyz.mapper.ShowSynchronizationPicMapper;
import net.sahv.bdyz.model.ShowSynchronization;
import net.sahv.bdyz.model.ShowSynchronizationPic;

/**
 * @author 作者 : 任凯伟
 * @date 创建时间：2016年8月3日 下午1:55:09
 * @version 1.0
 * @see 秀场
 */
@Service
public class ShowSynchronizationService {
	
	@Autowired
	private ShowSynchronizationMapper showSynchronizationMapper;
	@Autowired
	private ShowSynchronizationPicMapper showSynchronizationPicMapper;

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月3日 下午2:00:40
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<ShowSynchronization> selectAll() {
		return showSynchronizationMapper.selectAll();
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月3日 下午2:19:52
	 * @version 1.0
	 * @see 根据id查询秀场同步详情
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public ShowSynchronization selectById(Integer sId) {
		return showSynchronizationMapper.selectByPrimaryKey(sId);
	}
	
    public int deleteByPrimaryKey(Integer id){
    	return showSynchronizationMapper.deleteByPrimaryKey(id);
    }

    public int insert(ShowSynchronization record){
    	return showSynchronizationMapper.insert(record);
    }

    public int updateByPrimaryKey(ShowSynchronization record){
    	return showSynchronizationMapper.updateByPrimaryKey(record);
    }

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 上午11:01:46
	 * @version 1.0
	 * @param param
	 * @see 查询秀场根列表
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<ShowSynchronization> findParentList(Map<String, Object> param) {
		return showSynchronizationMapper.findParentList(param);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 上午11:04:51
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public Integer getTotalCount(String where) {
		return showSynchronizationMapper.getTotalCount(where);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 上午11:49:13
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public int delete(Integer[] id) {
		return showSynchronizationMapper.delete(id);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 下午2:43:29
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public ShowSynchronization findByName(String name) {
		return showSynchronizationMapper.findByName(name);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 下午3:05:48
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public ShowSynchronization findByIdAndName(Integer id, String name) {
		return showSynchronizationMapper.findByIdAndName(id, name);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 下午3:53:07
	 * @version 1.0
	 * @see 查询秀场列表数据
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<Map<String, Object>> findShowList(Map<String, Object> param) {
		return showSynchronizationMapper.findShowList(param);
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 下午4:47:37
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<ShowSynchronization> findAllParent() {
		return showSynchronizationMapper.findAllParent();
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月9日 下午4:59:02
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	@Transactional
	public int insertShow(ShowSynchronization ss, String[] imgPaths) {
		int count = showSynchronizationMapper.insert(ss);
		Date now = new Date();
		List<ShowSynchronizationPic> pList = new ArrayList<ShowSynchronizationPic>();
		for (int i = 0; i < imgPaths.length; i++) {
			if (imgPaths[i] != null && imgPaths[i] != "" && imgPaths[i].length() > 0) {
				ShowSynchronizationPic show = new ShowSynchronizationPic();
				show.setCreateTime(now);
				show.setImg(imgPaths[i]);
				show.setIsDelete(0);
				show.setSsId(ss.getId());
				pList.add(show);
			}
		}
		if (pList.size() > 0) {
			showSynchronizationPicMapper.batchInsert(pList);
		}
		return count;
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月10日 上午9:55:32
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	@Transactional
	public int update(ShowSynchronization ss, String[] imgPaths) {
		int count = showSynchronizationMapper.updateByPrimaryKey(ss);
		showSynchronizationPicMapper.deleteByShowId(ss.getId());
		Date now = new Date();
		List<ShowSynchronizationPic> pList = new ArrayList<ShowSynchronizationPic>();
		for (int i = 0; i < imgPaths.length; i++) {
			if (imgPaths[i] != null && imgPaths[i] != "" && imgPaths[i].length() > 0) {
				ShowSynchronizationPic showPic = new ShowSynchronizationPic();
				showPic.setCreateTime(now);
				showPic.setImg(imgPaths[i]);
				showPic.setIsDelete(0);
				showPic.setSsId(ss.getId());
				pList.add(showPic);
			}
		}
		if (pList.size() > 0) {
			showSynchronizationPicMapper.batchInsert(pList);
		}
		return count;
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年8月31日 上午11:49:11
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<ShowSynchronization> findAllChild() {
		return showSynchronizationMapper.findAllChild();
	}

	/**
	 * @author 作者 : 任凯伟
	 * @date 创建时间：2016年10月14日 下午2:02:50
	 * @version 1.0
	 * @see
	 * @param
	 * @parameter
	 * @since
	 * @return
	 */
	public List<ShowSynchronization> getChildList(Integer pId) {
		return showSynchronizationMapper.getChildList(pId);
	}
}
 